﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MedicService.Domain.Generic;
using MedicService.Server.Factory.Generic;

namespace MedicService.Server.Factory.Directory.Simple {

    //public abstract class A<T> where T : B {
    //    public abstract T createT();
    //}
    //public class B {}
    //public class C0: B {}
    //public class C1: B {}
    //public class D0 : A<C0> {
    //    public override C0 createT() {
    //        return new C0();
    //    }
    //}
    //public class D1 : A<C1> {
    //    public override C1 createT() {
    //        return new C1();
    //    }
    //}
    
    //public class E {
    //    public static A<B> getA(bool b) {
    //        if (b) {
    //            return new D0();
    //        }else {
    //            return new D1();
    //        }
    //    }
    //}



    public class DirectorySimpleLocator {
        //public static DirectorySimpleFactory<> GetFactory<T>(string directoryName) {
        //    switch (directoryName) {
        //        case "AcademicTitle": {
        //            return new AcademicTitleFactory();
        //        }
        //        case "Class": {
        //            return new ClassFactory();
        //            }
        //        case "ClassSpecialisation": {
        //                var list = ms.GetClassSpecialisationList(GetSession());
        //                items.AddRange(list.ToList());
        //                break;
        //            }
        //        case "Degree": {
        //                var list = ms.GetDegreeList(GetSession());
        //                items.AddRange(list.ToList());
        //                break;
        //            }
        //        case "InstitutionType": {
        //                var list = ms.GetInstitutionTypeList(GetSession());
        //                items.AddRange(list.ToList());
        //                break;
        //            }
        //        case "JobCategory": {
        //                var list = ms.GetJobCategoryList(GetSession());
        //                items.AddRange(list.ToList());
        //                break;
        //            }
        //        case "Ownership": {
        //                var list = ms.GetOwnershipList(GetSession());
        //                items.AddRange(list.ToList());
        //                break;
        //            }
        //        case "Region": {
        //                var list = ms.GetRegionList(GetSession());
        //                items.AddRange(list.ToList());
        //                break;
        //            }
        //    }
        //}
    }
}